﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLNS.Class;
using QLNS.BaoCao;

namespace QLNS.NghiepVu
{
    public partial class frmHoSoNhanVien : Form
    {
        string tag = "";
        DB Cn = new DB();
        int count_changed = 0;

        public frmHoSoNhanVien()
        {
            InitializeComponent();
        }

        #region load data

        private void load_data()
        {
            // Lấy dữ liệu cho phần danh sách nhân viên bên trái form
            DataTable dtToMon = Cn.getTable("select * from ToMon");
            DataRow dr = dtToMon.NewRow();
            dr["MaToMon"] = "-1";
            dr["TenToMon"] = "---Tất cả---";
            dtToMon.Rows.InsertAt(dr, 0);
            cmbToMon_Filter.DataSource = dtToMon;
            cmbToMon_Filter.DisplayMember = "TenToMon";
            cmbToMon_Filter.ValueMember = "MaToMon";

            // Lấy dữ liệu cho tab thông tin cá nhân
            cmbToMon.DataSource = Cn.getTable("SELECT * FROM [ToMon]");
            cmbToMon.DisplayMember = "TenToMon";
            cmbToMon.ValueMember = "MaToMon";

            cbChucVu.DataSource = Cn.getTable("select * from ChucVu");
            cbChucVu.DisplayMember = "TenChucVu";
            cbChucVu.ValueMember = "MaChucVu";

            cmbDanToc.DataSource = Cn.getTable("select * from DanToc");
            cmbDanToc.DisplayMember = "TenDanToc";
            cmbDanToc.ValueMember = "MaDanToc";

            cmbTonGiao.DataSource = Cn.getTable("select * from TonGiao");
            cmbTonGiao.DisplayMember = "TenTonGiao";
            cmbTonGiao.ValueMember = "MaTonGiao";

            DataTable dtChucVuDoan = Cn.getTable("select * from ChucVuDoan");
            dr = dtChucVuDoan.NewRow();
            dr["MaCVDoan"] = "-1";
            dr["TenCVDoan"] = "---Không---";
            dtChucVuDoan.Rows.InsertAt(dr, 0);
            cmbChucVuDoan.DataSource = dtChucVuDoan;
            cmbChucVuDoan.DisplayMember = "TenCVDoan";
            cmbChucVuDoan.ValueMember = "MaCVDoan";

            DataTable dtChucVuDang = Cn.getTable("select * from ChucVuDang");
            dr = dtChucVuDang.NewRow();
            dr["MaCVDang"] = "-1";
            dr["TenCVDang"] = "---Không---";
            dtChucVuDang.Rows.InsertAt(dr, 0);
            cmbChucVuDang.DataSource = dtChucVuDang;
            cmbChucVuDang.DisplayMember = "TenCVDang";
            cmbChucVuDang.ValueMember = "MaCVDang";

            load_btn(tag);

            // Lấy dữ liệu cho tab trình độ chuyên môn
            cbChuyenMon.DataSource = Cn.getTable("select * from ChuyenMon");
            cbChuyenMon.DisplayMember = "TenChuyenMon";
            cbChuyenMon.ValueMember = "MaChuyenMon";

            cbTrinhDo.DataSource = Cn.getTable("select * from TrinhDo");
            cbTrinhDo.DisplayMember = "TenTrinhDo";
            cbTrinhDo.ValueMember = "MaTrinhDo";

            load_TrinhDoChuyenMon();

            load_btnTDCM(tag);

            // Lấy dữ liệu cho tab trình độ ngoại ngữ
            cbNN.DisplayMember = "TenNgoaiNgu";
            cbNN.ValueMember = "MaNgoaiNgu";
            cbNN.DataSource = Cn.getTable("select * from NgoaiNgu");

            load_TrinhDoNgoaiNgu();

            load_btnTDNN(tag);
        }

        private void load_DanhSachNhanVien()
        {
            string statusCMB = cmbToMon_Filter.SelectedValue.ToString();
            // kiểm tra trạng thái của ComboBox cmbToMon_Filter khi lần đầu load form
            dtgNhanVien.AutoGenerateColumns = false;
            if (cmbToMon_Filter.SelectedValue.ToString() == "-1" || statusCMB == "System.Data.DataRowView")
            {
                DataTable tbl = Cn.getTable("select row_number() over(order by MaNhanVien) as STT,* from NhanVien");
                dtgNhanVien.DataSource = tbl;
                lbTongSo.Text = dtgNhanVien.Rows.Count.ToString();
            }
            else
            {
                DataTable tbl = Cn.getTable("select row_number() over(order by MaNhanVien) as STT,* from NhanVien where MaToMon='" + cmbToMon_Filter.SelectedValue.ToString() + "'");
                dtgNhanVien.DataSource = tbl;
                lbTongSo.Text = dtgNhanVien.Rows.Count.ToString();
            }
        }

        private void load_TrinhDoChuyenMon()
        {
            DataTable tbl = Cn.getTable("select row_number() over(order by MaChiTietChuyenMon) as STT,* from ChiTietChuyenMon where MaNhanVien='" + lbMaNV.Text + "'");
            dtgTrinhDoChuyenMon.DataSource = tbl;
        }

        private void load_TrinhDoNgoaiNgu()
        {
            DataTable tbl = Cn.getTable("select row_number() over(order by MaTDNN) as STT,* from NgoaiNguNhanVien where MaNhanVien='" + lbMaNV.Text + "'");
            dtgTrinhDoNgoaiNgu.DataSource = tbl;
        }

        private void load_btn(string tag)
        {
            if (tag == "them")
            {
                btnThem.Enabled = false;
                btnSua.Enabled = false;
                btnXoa.Enabled = false;
                btnLuu.Enabled = true;
                btnHuy.Enabled = true;

                txtMaNhanVien.Enabled = true;
                txtMaNhanVien.Text = "";
                txtHoTen.Enabled = true;
                txtHoTen.Text = "";
                cmbToMon.Enabled = true;
                cbChucVu.Enabled = true;
                dtpNgayVaoLam.Enabled = true;
                txtEmail.Enabled = true;
                txtEmail.Text = "";
                txtNgheNghiepTruoc.Enabled = true;
                txtNgheNghiepTruoc.Text = "";
                dtpNgaySinh.Enabled = true;
                cbGioiTinh.Enabled = true;
                txtSoCMTND.Enabled = true;
                txtSoCMTND.Text = "";
                txtDienThoai.Enabled = true;
                txtDienThoai.Text = "";
                cmbDanToc.Enabled = true;
                cmbTonGiao.Enabled = true;
                txtHoKhau.Enabled = true;
                txtHoKhau.Text = "";
                cmbChucVuDoan.Enabled = true;
                cmbChucVuDang.Enabled = true;
            }
            else if (tag == "sua")
            {
                btnThem.Enabled = false;
                btnSua.Enabled = false;
                btnXoa.Enabled = false;
                btnLuu.Enabled = true;
                btnHuy.Enabled = true;

                txtMaNhanVien.Enabled = true;
                txtHoTen.Enabled = true;
                cmbToMon.Enabled = true;
                cbChucVu.Enabled = true;
                dtpNgayVaoLam.Enabled = true;
                txtEmail.Enabled = true;
                txtNgheNghiepTruoc.Enabled = true;
                dtpNgaySinh.Enabled = true;
                cbGioiTinh.Enabled = true;
                txtSoCMTND.Enabled = true;
                txtDienThoai.Enabled = true;
                cmbDanToc.Enabled = true;
                cmbTonGiao.Enabled = true;
                txtHoKhau.Enabled = true;
                cmbChucVuDoan.Enabled = true;
                cmbChucVuDang.Enabled = true;
            }

            else
            {
                btnThem.Enabled = true;
                btnSua.Enabled = true;
                btnXoa.Enabled = true;
                btnLuu.Enabled = false;
                btnHuy.Enabled = false;

                txtMaNhanVien.Enabled = false;
                txtHoTen.Enabled = false;
                cmbToMon.Enabled = false;
                cbChucVu.Enabled = false;
                dtpNgayVaoLam.Enabled = false;
                txtEmail.Enabled = false;
                txtNgheNghiepTruoc.Enabled = false;
                dtpNgaySinh.Enabled = false;
                cbGioiTinh.Enabled = false;
                txtSoCMTND.Enabled = false;
                txtDienThoai.Enabled = false;
                cmbDanToc.Enabled = false;
                cmbTonGiao.Enabled = false;
                txtHoKhau.Enabled = false;
                cmbChucVuDoan.Enabled = false;
                cmbChucVuDang.Enabled = false;
            }
        }

        private void load_btnTDNN(string tag)
        {
            if (tag == "them")
            {
                btnThemTDNN.Enabled = false;
                btnSuaTDNN.Enabled = false;
                btnXoaTDNN.Enabled = false;
                btnLuuTDNN.Enabled = true;
                btnHuyTDNN.Enabled = true;

                cbNN.Enabled = true;
                txtNoiCapTDNN.Enabled = true;
                txtNoiCapTDNN.Text = "";
                cbTrinhDoNN.Enabled = true;
                dtpNgayCapTDNN.Enabled = true;
            }
            else if (tag == "sua")
            {
                btnThemTDNN.Enabled = false;
                btnSuaTDNN.Enabled = false;
                btnXoaTDNN.Enabled = false;
                btnLuuTDNN.Enabled = true;
                btnHuyTDNN.Enabled = true;

                cbNN.Enabled = true;
                txtNoiCapTDNN.Enabled = true;
                cbTrinhDoNN.Enabled = true;
                dtpNgayCapTDNN.Enabled = true;
            }
            else
            {
                btnThemTDNN.Enabled = true;
                btnSuaTDNN.Enabled = true;
                btnXoaTDNN.Enabled = true;
                btnLuuTDNN.Enabled = false;
                btnHuyTDNN.Enabled = false;

                cbNN.Enabled = false;
                txtNoiCapTDNN.Enabled = false;
                cbTrinhDoNN.Enabled = false;
                dtpNgayCapTDNN.Enabled = false;
            }
        }

        private void load_btnTDCM(string tag)
        {
            if (tag == "them")
            {
                btnThemTDCM.Enabled = false;
                SuaTDCM.Enabled = false;
                XoaTDCM.Enabled = false;
                LuuTDCM.Enabled = true;
                HuyTDCM.Enabled = true;

                cbChuyenMon.Enabled = true;
                dtpNgayCap.Enabled = true;
                cbTrinhDo.Enabled = true;
                txtTruong.Enabled = true;
                txtTruong.Text = "";
                cbChuyenMonChinh.Enabled = true;
            }
            else if (tag == "sua")
            {
                btnThemTDCM.Enabled = false;
                SuaTDCM.Enabled = false;
                XoaTDCM.Enabled = false;
                LuuTDCM.Enabled = true;
                HuyTDCM.Enabled = true;

                cbChuyenMon.Enabled = true;
                dtpNgayCap.Enabled = true;
                cbTrinhDo.Enabled = true;
                txtTruong.Enabled = true;
                cbChuyenMonChinh.Enabled = true;
            }
            else
            {
                btnThemTDCM.Enabled = true;
                SuaTDCM.Enabled = true;
                XoaTDCM.Enabled = true;
                LuuTDCM.Enabled = false;
                HuyTDCM.Enabled = false;

                cbChuyenMon.Enabled = false;
                dtpNgayCap.Enabled = false;
                cbTrinhDo.Enabled = false;
                txtTruong.Enabled = false;
                cbChuyenMonChinh.Enabled = false;
            }
        }

        #endregion

        private void frmHoSoNhanVien_Load(object sender, EventArgs e)
        {
            if (Cn.KetNoi())
            {
                load_data();
            }
            else
            {
                MessageBox.Show("Lỗi kết nối đến CSDL.");
                this.Close();
            }
        }

        #region GridView selection changed

        private void dtgNhanVien_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            count_changed++;
            if (dtgNhanVien.Rows.Count > 0 && count_changed > 2)
            {
                string MaNhanVien = dtgNhanVien.Rows[e.RowIndex].Cells["MaNhanVienDGVNV"].Value.ToString();
                lbMaNV.Text = MaNhanVien;
                lbTenNV.Text = dtgNhanVien.Rows[e.RowIndex].Cells["HoTen"].Value.ToString();

                // Hiển thị dữ liệu cho tab thông tin cá nhân
                DataTable tblNV = Cn.getTable("SELECT * FROM [NhanVien] WHERE MaNhanVien='" + MaNhanVien + "'");
                txtMaNhanVien.Text = tblNV.Rows[0]["MaNhanVien"].ToString();
                dtpNgaySinh.Value = Convert.ToDateTime(tblNV.Rows[0]["NgaySinh"].ToString());
                txtHoTen.Text = tblNV.Rows[0]["HoTen"].ToString();
                cbGioiTinh.Text = tblNV.Rows[0]["GioiTinh"].ToString();
                cmbToMon.SelectedValue = tblNV.Rows[0]["MaToMon"].ToString();
                txtSoCMTND.Text = tblNV.Rows[0]["SoCMND"].ToString();
                DataTable tblCVNV = Cn.getTable("select MaChucVu from ChucVuNhanVien where maNhanVien='" + MaNhanVien + "'");
                if (tblCVNV.Rows.Count > 0)
                {
                    cbChucVu.SelectedValue = tblCVNV.Rows[tblCVNV.Rows.Count - 1]["MaChucVu"].ToString();
                }
                txtDienThoai.Text = tblNV.Rows[0]["SoDienThoai"].ToString();
                dtpNgayVaoLam.Value = Convert.ToDateTime(tblNV.Rows[0]["NgayVaoCQHienTai"].ToString());
                cmbDanToc.SelectedValue = tblNV.Rows[0]["MaDanToc"].ToString();
                txtEmail.Text = tblNV.Rows[0]["Email"].ToString();
                cmbTonGiao.SelectedValue = tblNV.Rows[0]["MaTonGiao"].ToString();
                txtNgheNghiepTruoc.Text = tblNV.Rows[0]["NgheNghiepTruoc"].ToString();
                txtHoKhau.Text = tblNV.Rows[0]["NoiOHienTai"].ToString();

                if (tblNV.Rows[0]["NgayVaoDoan"].ToString() == "")
                {
                    dtpNgayVaoDoan.Checked = false;
                }
                else
                {
                    dtpNgayVaoDoan.Checked = true;
                    dtpNgayVaoDoan.Value = Convert.ToDateTime(tblNV.Rows[0]["NgayVaoDoan"].ToString());
                }

                if (tblNV.Rows[0]["MaCVDoan"].ToString() != "")
                {
                    cmbChucVuDoan.SelectedValue = tblNV.Rows[0]["MaCVDoan"].ToString();
                }

                if (tblNV.Rows[0]["NgayVaoDang"].ToString() == "")
                {
                    dtpNgayVaoDang.Checked = false;
                }
                else
                {
                    dtpNgayVaoDang.Checked = true;
                    dtpNgayVaoDang.Value = Convert.ToDateTime(tblNV.Rows[0]["NgayVaoDang"].ToString());
                }

                if (tblNV.Rows[0]["MaCVDang"].ToString() != "")
                {
                    cmbChucVuDang.SelectedValue = tblNV.Rows[0]["MaCVDang"].ToString();
                }

            }
        }

        private void dtgTrinhDoChuyenMon_SelectionChanged(object sender, EventArgs e)
        {
            if (dtgTrinhDoChuyenMon.RowCount > 0)
            {
                cbChuyenMon.SelectedValue = dtgTrinhDoChuyenMon.CurrentRow.Cells["MaChuyenMon"].Value.ToString();
                dtpNgayCap.Value = Convert.ToDateTime(dtgTrinhDoChuyenMon.CurrentRow.Cells["NgayCap"].Value.ToString());
                cbTrinhDo.SelectedValue = dtgTrinhDoChuyenMon.CurrentRow.Cells["MaTrinhDo"].Value.ToString();
                txtTruong.Text = dtgTrinhDoChuyenMon.CurrentRow.Cells["Truong"].Value.ToString();
                cbChuyenMonChinh.Text = dtgTrinhDoChuyenMon.CurrentRow.Cells["ChuyenMonChinh"].Value.ToString();
            }
        }

        private void dtgTrinhDoNgoaiNgu_SelectionChanged(object sender, EventArgs e)
        {
            if (dtgTrinhDoNgoaiNgu.RowCount > 0)
            {
                cbNN.SelectedValue = dtgTrinhDoNgoaiNgu.CurrentRow.Cells["MaNgoaiNgu"].Value.ToString();
                txtNoiCapTDNN.Text = dtgTrinhDoNgoaiNgu.CurrentRow.Cells["NoiCap"].Value.ToString();
                cbTrinhDoNN.Text = dtgTrinhDoNgoaiNgu.CurrentRow.Cells["TrinhDo"].Value.ToString();
                dtpNgayCapTDNN.Value = DateTime.Parse(dtgTrinhDoNgoaiNgu.CurrentRow.Cells["NgayCapTDNN"].Value.ToString());
            }
        }

        #endregion

        #region event click button

        //Xử lý sự kiện ở tab Thông tin cá nhân
        private void cmbChucVuDoan_SelectedIndexChanged(object sender, EventArgs e)
        {
            int status = Int32.Parse(cmbChucVuDoan.SelectedValue.ToString());
            if (cmbChucVuDoan.SelectedValue.ToString() == "-1" || cmbChucVuDoan.SelectedValue.ToString() == "System.Data.DataRowView")
            {
                dtpNgayVaoDoan.Enabled = false;
            }
            else
            {
                dtpNgayVaoDoan.Enabled = true;
            }
        }

        private void cmbChucVuDang_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbChucVuDang.SelectedValue.ToString() == "-1" || cmbChucVuDang.SelectedValue.ToString() == "System.Data.DataRowView")
            {
                dtpNgayVaoDang.Enabled = false;
            }
            else
            {
                dtpNgayVaoDang.Enabled = true;
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            tag = "them";
            load_btn(tag);
            txtMaNhanVien.Text = Cn.SinhMa("MaNhanVien", "NhanVien", "NV");
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            tag = "sua";
            load_btn(tag);
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn có muốn xóa hay không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dialogResult == DialogResult.Yes)
            {
                if (dtgNhanVien.RowCount > 0)
                {
                    Cn.Delete_Table("NhanVien", "MaNhanVien='" + txtMaNhanVien.Text + "'");
                    load_DanhSachNhanVien();
                    MessageBox.Show("Xóa dữ liệu thành công.");
                }
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtMaNhanVien.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập mã nhân viên.");
                txtMaNhanVien.Focus();
                return;
            }

            if (txtHoTen.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập họ tên.");
                txtHoTen.Focus();
                return;
            }

            if (cbGioiTinh.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn giới tính.");
                cbGioiTinh.Focus();
                return;
            }

            if (txtSoCMTND.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập số CMTND.");
                txtSoCMTND.Focus();
                return;
            }

            if (txtHoKhau.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập hộ khẩu.");
                txtHoKhau.Focus();
                return;
            }

            string MaNhanVien = txtMaNhanVien.Text;
            string HoTen = txtHoTen.Text;
            string MaToMon = cmbToMon.SelectedValue.ToString();
            string MaChucVu = cbChucVu.SelectedValue.ToString();
            string NgayVaoCQHienTai = dtpNgayVaoLam.Value.ToString("yyyy-MM-dd");
            string Email = txtEmail.Text;
            string NgheNghiepTruoc = txtNgheNghiepTruoc.Text;
            string NgaySinh = dtpNgaySinh.Value.ToString("yyyy-MM-dd");
            string GioiTinh = cbGioiTinh.Text;
            string SoCMND = txtSoCMTND.Text;
            string SoDienThoai = txtDienThoai.Text;
            string MaDanToc = cmbDanToc.SelectedValue.ToString();
            string MaTonGiao = cmbTonGiao.SelectedValue.ToString();
            string NoiOHienTai = txtHoKhau.Text;
            string MaCVDang = "";
            string NgayVaoDang = "";
            string MaCVDoan = "";
            string NgayVaoDoan = "";
            if (cmbChucVuDang.SelectedValue.ToString() == "-1")
            {
                MaCVDang = cmbChucVuDang.SelectedValue.ToString();
                NgayVaoDang = dtpNgayVaoDang.Value.ToString("yyyy-MM-dd");
            }
            if (cmbChucVuDoan.SelectedValue.ToString() == "-1")
            {
                MaCVDoan = cmbChucVuDoan.SelectedValue.ToString();
                NgayVaoDoan = dtpNgayVaoDoan.Value.ToString("yyyy-MM-dd");
            }

            if (tag == "them")
            {
                //  Kiểm tra nhân viên đã tồn tại trong csdl hay chưa, Nếu chưa thì được phép thêm.
                string ketqua = Cn.LayDuLieu("SELECT MaNhanVien FROM NhanVien WHERE MaNhanVien = '" + MaNhanVien + "'");
                if (ketqua != "")
                {
                    MessageBox.Show("Mã nhân viên đã tồn tại.");
                    txtMaNhanVien.Focus();
                    return;
                }

                Cn.Insert_Table("NhanVien", "MaNhanVien,HoTen,NgaySinh,GioiTinh,NoiOHienTai,MaDanToc,MaTonGiao,NgheNghiepTruoc,NgayVaoCQHienTai,NgayVaoDoan,NgayVaoDang,SoCMND,SoDienThoai,Email,MaToMon,MaCVDang,MaCVDoan,MaChucVu",
                    "'" + MaNhanVien + "',N'" + HoTen + "','" + NgaySinh + "',N'" + GioiTinh + "',N'" + NoiOHienTai + "','"
                    + MaDanToc + "','" + MaTonGiao + "',N'" + NgheNghiepTruoc + "','" + NgayVaoCQHienTai + "','"
                    + NgayVaoDoan + "','" + NgayVaoDang + "','" + SoCMND + "','" + SoDienThoai + "','"
                    + Email + "','" + MaToMon + "','" + MaCVDang + "','" + MaCVDoan + "','" + MaChucVu + "'");
            }
            else
            {
                Cn.Update_Table("NhanVien", "HoTen=N'" + HoTen + "',NgaySinh='" + NgaySinh
                    + "',GioiTinh=N'" + GioiTinh + "',NoiOHienTai=N'" + NoiOHienTai + "',MaDanToc='" + MaDanToc
                    + "',MaTonGiao='" + MaTonGiao + "',NgheNghiepTruoc=N'" + NgheNghiepTruoc
                    + "',NgayVaoCQHienTai='" + NgayVaoCQHienTai + "',NgayVaoDoan='" + NgayVaoDoan
                    + "',NgayVaoDang='" + NgayVaoDang + "',SoCMND='" + SoCMND + "',SoDienThoai='" + SoDienThoai
                    + "',Email='" + Email + "',MaToMon='" + MaToMon + "',MaCVDang='" + MaCVDang
                    + "',MaCVDoan='" + MaCVDoan + "',MaChucVu='" + MaChucVu + "'", "MaNhanVien='" + MaNhanVien + "'");
            }
            tag = "";
            load_btn(tag);
            load_DanhSachNhanVien();
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            tag = "";
            load_btn(tag);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // Xử lý sự kiện ở tab Trình độ chuyên môn
        private void btnThemTDCM_Click(object sender, EventArgs e)
        {
            tag = "them";
            load_btnTDCM(tag);
        }

        private void SuaTDCM_Click(object sender, EventArgs e)
        {
            tag = "sua";
            load_btnTDCM(tag);
        }

        private void XoaTDCM_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn có muốn xóa hay không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dialogResult == DialogResult.Yes)
            {
                if (dtgTrinhDoChuyenMon.RowCount > 0)
                {
                    Cn.Delete_Table("ChiTietChuyenMon", "MaChuyenMon='" + dtgTrinhDoChuyenMon.CurrentRow.Cells["MaChuyenMon"].Value.ToString() + "' and MaNhanVien='" + lbMaNV.Text + "'");
                    load_TrinhDoChuyenMon();
                    MessageBox.Show("Xóa dữ liệu thành công.");
                }
            }
        }

        private void LuuTDCM_Click(object sender, EventArgs e)
        {
            if (lbMaNV.Text.Trim() == "" || lbMaNV.Text == "...")
            {
                MessageBox.Show("Bạn chưa lựa chọn nhân viên.");
                return;
            }

            if (txtTruong.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập trường.");
                txtTruong.Focus();
                return;
            }

            if (tag == "them")
            {
                //  Kiểm tra nhân viên có chuyên môn đã chọn hay chưa? Nếu chưa thì được phép thêm ngược lại chỉ được phép cập nhật.
                string ketqua = Cn.LayDuLieu("SELECT MaChuyenMon FROM ChiTietChuyenMon WHERE MaNhanVien = '" + lbMaNV.Text + "' AND MaChuyenMon='" + cbChuyenMon.SelectedValue.ToString() + "'");
                if (ketqua != "")
                {
                    MessageBox.Show("Thông tin đã tồn tại.");
                    cbChuyenMon.Focus();
                    return;
                }

                string MaChiTietChuyenMon = Cn.SinhMa("MaChiTietChuyenMon", "ChiTietChuyenMon", "CC");
                Cn.Insert_Table("ChiTietChuyenMon", "MaChiTietChuyenMon,MaNhanVien,MaChuyenMon,MaTrinhDo,NgayCap,NoiCap,ChuyenMonChinh", "'" + MaChiTietChuyenMon + "','" + lbMaNV.Text + "','" + cbChuyenMon.SelectedValue.ToString() + "','" + cbTrinhDo.SelectedValue.ToString() + "','" + dtpNgayCap.Value.ToString("yyyy-MM-dd") + "',N'" + txtTruong.Text + "','" + cbChuyenMonChinh.Text + "'");
            }
            else
            {
                Cn.Update_Table("ChiTietChuyenMon", "MaTrinhDo='" + cbTrinhDo.SelectedValue.ToString() + "',NgayCap='" + dtpNgayCap.Value.ToString("yyyy-MM-dd") + "',NoiCap=N'" + txtTruong.Text + "',ChuyenMonChinh='" + cbChuyenMonChinh.Text + "'", "MaChuyenMon='" + cbChuyenMon.SelectedValue.ToString() + "' And MaNhanVien='" + lbMaNV.Text + "'");
            }
            tag = "";
            load_btnTDCM(tag);
            load_TrinhDoChuyenMon();
        }

        private void HuyTDCM_Click(object sender, EventArgs e)
        {
            tag = "";
            load_btnTDCM(tag);
        }

        private void btnInChuyenMon_Click(object sender, EventArgs e)
        {
            List<DanhSachChuyenMon> list = new List<DanhSachChuyenMon>();
            DataTable dataTable = Cn.getTable("select * from ChiTietChuyenMon where MaNhanVien='" + lbMaNV.Text + "' Order by NgayCap ASC");
            if (dataTable.Rows.Count > 0)
            {
                foreach (DataRow row in dataTable.Rows)
                {
                    DanhSachChuyenMon dsChuyenMon = new DanhSachChuyenMon();
                    string MaNhanVien = row["MaNhanVien"].ToString();
                    dsChuyenMon.NhanVien = Cn.LayDuLieu("SELECT HoTen FROM NhanVien WHERE MaNhanVien = '" + MaNhanVien + "'");
                    string MaChuyenMon = row["MaChuyenMon"].ToString();
                    dsChuyenMon.ChuyenMon = Cn.LayDuLieu("SELECT TenChuyenMon FROM ChuyenMon WHERE MaChuyenMon = '" + MaChuyenMon + "'");
                    string MaTrinhDo = row["MaTrinhDo"].ToString();
                    dsChuyenMon.TrinhDo = Cn.LayDuLieu("SELECT TenTrinhDo FROM TrinhDo WHERE MaTrinhDo = '" + MaTrinhDo + "'");
                    dsChuyenMon.NgayCap = row["NgayCap"].ToString().Substring(0, 10).Replace("-", "/");
                    dsChuyenMon.NoiCap = row["NoiCap"].ToString(); ;
                    dsChuyenMon.ChuyenMonChinh = row["ChuyenMonChinh"].ToString(); ;
                    list.Add(dsChuyenMon);
                }
            }
            frmBaoCaoChuyenMon _frmBaoCaoChuyenMon = new frmBaoCaoChuyenMon();
            _frmBaoCaoChuyenMon.DanhSachChuyenMonBindingSource.DataSource = list;
            _frmBaoCaoChuyenMon.ShowDialog();
        }

        private void ThoatTDCM_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // Xử lý sự kiện ở tab Trình độ ngoại ngữ
        private void btnThemTDNN_Click(object sender, EventArgs e)
        {
            tag = "them";
            load_btnTDNN(tag);
        }

        private void btnSuaTDNN_Click(object sender, EventArgs e)
        {
            tag = "sua";
            load_btnTDNN(tag);
        }

        private void btnXoaTDNN_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn có muốn xóa hay không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dialogResult == DialogResult.Yes)
            {
                if (dtgTrinhDoNgoaiNgu.RowCount > 0)
                {
                    Cn.Delete_Table("NgoaiNguNhanVien", "MaNgoaiNgu='" + dtgTrinhDoNgoaiNgu.CurrentRow.Cells["MaNgoaiNgu"].Value.ToString() + "' and MaNhanVien='" + lbMaNV.Text + "'");
                    load_TrinhDoNgoaiNgu();
                    MessageBox.Show("Xóa dữ liệu thành công.");
                }
            }
        }

        private void btnLuuTDNN_Click(object sender, EventArgs e)
        {
            if (lbMaNV.Text.Trim() == "" || lbMaNV.Text == "...")
            {
                MessageBox.Show("Bạn chưa lựa chọn nhân viên.");
                return;
            }

            if (cbTrinhDoNN.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn trình độ ngoại ngữ.");
                cbTrinhDoNN.Focus();
                return;
            }

            if (txtNoiCapTDNN.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập nơi cấp.");
                txtNoiCapTDNN.Focus();
                return;
            }

            if (tag == "them")
            {
                //  Kiểm tra nhân viên đã học ngoại ngữ đã chọn hay chưa? Nếu chưa thì được phép thêm ngược lại chỉ được phép cập nhật.
                string ketqua = Cn.LayDuLieu("SELECT MaNgoaiNgu FROM NgoaiNguNhanVien WHERE MaNhanVien = '" + lbMaNV.Text + "' AND MaNgoaiNgu='" + cbNN.SelectedValue.ToString() + "'");
                if (ketqua != "")
                {
                    MessageBox.Show("Thông tin đã tồn tại.");
                    cbNN.Focus();
                    return;
                }

                string MaTDNN = Cn.SinhMa("MaTDNN", "NgoaiNguNhanVien", "TN");
                Cn.Insert_Table("NgoaiNguNhanVien", "MaTDNN,MaNhanVien,MaNgoaiNgu,NgayCap,NoiCap,TrinhDo", "'" + MaTDNN + "','" + lbMaNV.Text + "','" + cbNN.SelectedValue.ToString() + "',N'" + dtpNgayCapTDNN.Value.ToString("yyyy-MM-dd") + "','" + txtNoiCapTDNN.Text + "','" + cbTrinhDoNN.Text + "'");
            }
            else
            {
                Cn.Update_Table("NgoaiNguNhanVien", "NgayCap='" + dtpNgayCapTDNN.Value.ToString("yyyy-MM-dd") + "',NoiCap=N'" + txtNoiCapTDNN.Text + "',TrinhDo=N'" + cbTrinhDoNN.Text + "'", "MaNgoaiNgu='" + cbNN.SelectedValue.ToString() + "' and " + "MaNhanVien='" + lbMaNV.Text + "'");
            }
            tag = "";
            load_btnTDNN(tag);
            load_TrinhDoNgoaiNgu();
        }

        private void btnHuyTDNN_Click(object sender, EventArgs e)
        {
            tag = "";
            load_btnTDNN(tag);
        }

        private void btnThoatTDNN_Click(object sender, EventArgs e)
        {
            DialogResult diaglogResult = MessageBox.Show("Bạn có muốn thoát không", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (diaglogResult == DialogResult.Yes)
            {
                this.Close();
            }
        }

        #endregion

        private void cmbToMon_Filter_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbToMon_Filter.Items.Count > 0)
            {
                load_DanhSachNhanVien();
            }
        }

        private void btnIn_Click(object sender, EventArgs e)
        {
            //tam = cbDonVi.SelectedValue.ToString();
            //frmBaoCaoNhanSu frmBaoCaoNhanSu = new frmBaoCaoNhanSu();
            //frmBaoCaoNhanSu.ShowDialog();
        }

    }
}
